package cn.stylefeng.guns.cloud.workflow.modular.service;

import cn.stylefeng.guns.cloud.model.page.PageResult;
import cn.stylefeng.guns.cloud.workflow.modular.model.params.RunOrEndProcessParam;
import cn.stylefeng.guns.cloud.workflow.modular.model.params.TaskParam;

/**
 * 运行中的流程 服务类
 *
 * @Author xuyuxiang
 * @Date 2019/11/14 17:23
 **/
public interface RunProcessService {

    /**
     * 运行中的流程
     *
     * @Author xuyuxiang
     * @Date 2019/11/4 20:23
     **/
    PageResult list(RunOrEndProcessParam runProcessParam);

    /**
     * 挂起
     *
     * @Author xuyuxiang
     * @Date 2019/11/6 10:31
     **/
    void suspend(String processInstanceId);

    /**
     * 激活
     *
     * @Author xuyuxiang
     * @Date 2019/11/6 10:32
     **/
    void active(String processInstanceId);

    /**
     * 转办（将此任务转为其他人审核）
     *
     * @Author xuyuxiang
     * @Date 2019/11/7 15:11
     **/
    void changeAssignee(TaskParam taskParam);

    /**
     * 结束（终止）
     *
     * @Author xuyuxiang
     * @Date 2019/11/6 10:32
     **/
    void end(String processInstanceId);
}
